/******************************************************************************
* CHIPSEA F61 TIMER HAL
*******************************************************************************/

#include "hal_cs_f70_timer.h"
#include "algorithm_init.h"

#ifdef CS_F70

#include <stdint.h>
#include <stdbool.h>

/********************************************************
@brief : TIMER0初始化，LIRC(10KHZ)作为时钟源
@param : tcmp : 定时器计数值
@ret   : none
@tips  : none
********************************************************/
void User_Timer1_Init()
{
    timer1_config_t timer1_config;                                      //定时器配置结构体定义
    
    /*定时器初始化，用于定时器中断*/
    /*定时器1中断使能*/
    nvic_irqx_enable(IRQ_TMR1_INT); 
    /*定时器1中断优先级为0*/
    nvic_irq_priority_set(IRQ_TMR1_INT,0);
	
    /*时钟源选择低速2k时钟*/
    rcc_timer1_clksource_config(RCC_CLKSOURCE_LIRC);    	
    /*使能定时器1时钟*/
    rcc_apb_periph_clock_config(RCC_APB_PERI_TMR1, ENABLE);
    
    /************定时器1配置****************/
    /*使能定时器1中断使能 */
    timer1_config.int_enable = ENABLE;
    /*定时器1时钟分频为2（默认加一），单个计数时长1ms */
    timer1_config.clk_divide = 1;
    /*周期模式选择使能 */
    timer1_config.period_select_enable = ENABLE;
    /*定时器比较值，用于调节进入中断时间：0x00 to oxFFFFFF */
    timer1_config.cmp_cnt = 10;
    /*定时器1工作模式为周期模式*/
    timer1_config.work_mode = TIMER1_MODE_PERIOD;
    timer1_init(&timer1_config);

	timer1_enable();

	timer1_cnt_update_enable();
}

/********************************************************************************
@brief : TIMER0中断 1ms
@param : NONE
@ret   : NONE
********************************************************************************/
void TMR1_IRQHandler(void)
{
	st_hal_platform.timer_flag[0] = true;

	timer1_isr_clear();

	// printf("TMR1\r\n");

#if (UART_LOG)
	st_power.state = I2C_START;
#endif
}


////////////////////////////////////////////////////////////////////////////////////////////////////

void hal_timer_reset(uint8_t timer, uint32_t time)
{
	(void)timer;
	// timer1_disable();  
	// timer1_counter_reset();
	timer1_cmp_set(time);
	// timer1_enable();
}

////////////////////////////////////////////////////////////////////////////////////////////////////

#endif /* End of CS_F61 */
